package cn.edu.gdpt.mobile0123456789hwh0403;

import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
//1、全局控件变量声明
    private Button btnMainSupplier;
    private Button btnMainBuy;
    private TextView tvMainResult;
    private Button btnMainClose;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();//3、调用初始化方法
        //4、给关闭按钮设置点击事件监听器
        btnMainClose.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
//                5、通过普通对话框方式实现退出确认功能
                AlertDialog dialog;//声明对话框对象
                //创建对话框构建器对象
                AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
                builder.setTitle("对话框");//在构建器中设置对话框标题
                builder.setMessage("确定退出应用");//在构建器中设置对话框信息内容
                //6、添加对话框确定按钮
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        dialogInterface.dismiss();//关闭对话框
                        MainActivity.this.finish();//关闭Activity
                    }
                });
                //7、添加对话框取消按钮
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        dialogInterface.dismiss();//关闭对话框
                    }
                });
                dialog=builder.create();//通过构建器创建对话框
                dialog.show();//显示对话框
            }
        });
//        8、给选择供应商按钮设置点击监听事件
        btnMainSupplier.setOnClickListener(new View.OnClickListener() {
            String[] supplies={"新星汽车配件","枫叶汽车配件","天辉汽车配件","西末汽车配件"};
            @Override
            public void onClick(View view) {
//                9、在onClick()处理器中，以匿名对象方式定义对话框，并显示。
                new AlertDialog.Builder(MainActivity.this)
                        .setTitle("请选择供应商")
                        .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                dialogInterface.dismiss();
                            }
                        })//设置确定按钮，实现对话框关闭功能
                        .setSingleChoiceItems(supplies, 0, new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                tvMainResult.setText(supplies[i]);//在文本控件中显示被选中的控件
                            }
                        })
                        .create()
                        .show();;
            }
        });
//        9、给原材料购买按钮设置点击监听事件。
        btnMainBuy.setOnClickListener(new View.OnClickListener() {
            String[] parts=new String[]{"轿车引擎","轿车前玻璃","轿车方向盘"};
            @Override
            public void onClick(View view) {
                new AlertDialog.Builder(MainActivity.this)
                        .setTitle("请选择原材料")
                        .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                tvMainResult.setText(null);//重置文本控件内容为空
                                ListView listView=((AlertDialog)dialogInterface).getListView();//获取多选项
                                for(int j=0;j<parts.length;j++){//依次判断多选项列表中的每个项
                                    if(listView.getCheckedItemPositions().get(j)){//判断是否为真
                                        tvMainResult.append(parts[j]+"\n");//显示在文本控件中
                                    }
                                }
                                dialogInterface.dismiss();
                            }
                        })
                        .setMultiChoiceItems(parts, null, new DialogInterface.OnMultiChoiceClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i, boolean b) {

                            }
                        })
                        .create()
                        .show();
            }
        });

    }


    //2、定义控件初始化方法，调用findViewById()方法获取界面控件
    private void initView() {
        btnMainSupplier = (Button) findViewById(R.id.btnMainSupplier);
        btnMainBuy = (Button) findViewById(R.id.btnMainBuy);
        tvMainResult = (TextView) findViewById(R.id.tvMainResult);
        btnMainClose = (Button) findViewById(R.id.btnMainClose);
    }
}